The present disclosure relates generally to software applications on a communications device, and more particularly, to automatic software application discovery, download, integration, and/or launch for execution on the communications device.
A mobile application (also referred to as “app”) is a computer program designed to run on smartphones, tablet computers, and other mobile devices. Apps are usually available through application distribution platforms, which began appearing in 2008 and are typically operated by the owner of the mobile operating system, such as the Apple® App Store, Google® Play, Windows® Phone Store, and BlackBerry® App World. Some apps are free, while others must be bought. Usually, they are downloaded from the platform to a target device, such as an iPhone®, BlackBerry®, Android™ phone or Windows® Phone, but sometimes they can be downloaded to laptops or desktop computers. For apps with a price, generally a percentage, 20-30%, goes to the distribution provider (such as iTunes®), and the rest goes to the producer of the app. The same app can therefore cost the average smartphone user a different price depending on whether they use iPhone, Android, or BlackBerry devices.
The term “app” is a shortening of the term “application software”. It has become very popular. It was noted that newer smartphones could be nicknamed “app phones” to distinguish them from earlier less-sophisticated smartphones.
Mobile apps were originally offered for general productivity and information retrieval, including email, calendar, contacts, and stock market and weather information. However, public demand and the availability of developer tools drove rapid expansion into other categories, such as mobile games, factory automation, GPS and location-based services, banking, order-tracking, ticket purchases and recently mobile medical apps. The explosion in number and variety of apps made discovery a challenge, which in turn led to the creation of a wide range of review, recommendation, and curation sources, including blogs, magazines, and dedicated online app-discovery services.
The popularity of mobile apps has continued to rise, as their usage has become increasingly prevalent across mobile phone users. Researchers found that usage of mobile apps strongly correlates with user context and depends on user's location and time of the day.
Developing apps for mobile devices requires considering the constraints and features of these devices. Mobile devices run on battery and have less powerful than personal computers and also have more features such as location detection and cameras. Developers also have to consider a lengthy array of screen sizes, hardware specifications and configurations because of intense competition in mobile software and changes within each of the platforms.
Mobile application development may require use of specialized integrated development environments. Mobile apps are first tested within the development environment using emulators and later subjected to field testing. Emulators provide an inexpensive way to test applications on mobile phones to which developers may not have physical access.
As part of the development process, mobile user interface (UI) design is also an essential in the creation of mobile apps. Mobile UI considers constraints & contexts, screen, input and mobility as outlines for design. The user is often the focus of interaction with their device, and the interface entails components of both hardware and software. User input allows for the users to manipulate a system, and device's output allows the system to indicate the effects of the users' manipulation. Mobile UI design constraints include limited attention and form factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts signal cues from user activity, such as location and scheduling that can be shown from user interactions within a mobile application. Overall, mobile UI design's goal is primarily for an understandable, user-friendly interface. The UI of mobile apps should: consider users' limited attention, minimize keystrokes, and be task-oriented with a minimum set of functions.